package gamedo

import "wails/schema/enums/busenum"

// 用于转服或者合服时，保存不需要功能的历史记录
// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
// @cache_go
// @alias D功能备份
type D功能备份 struct {
	// @alias _id
	B编号 string `alias:"_id"`
	// 0-未知 1-配置 2-后台
	// @alias 来源
	L来源 int `alias:"来源"`
	// @alias 功能配置
	G功能配置 string `alias:"功能配置"`
	// @alias 功能集
	G功能集 map[string]*S功能数据 `alias:"商品集"`
	// @alias 状态
	Z状态 busenum.G功能状态 `alias:"状态"`
	// @alias 更新时间
	G更新时间 int `alias:"更新时间"`
	// @alias 创建时间
	C创建时间 int `alias:"创建时间"`
}

// 功能记录数据
type S功能数据 struct {
	// @alias 标识
	B标识 string `alias:"标识"`
	// @alias 状态
	Z状态 busenum.G功能状态 `alias:"状态"`
	// 有可领取的奖励
	// 邮件有新消息
	// 背包栏有新的物品
	// @alias 红点
	H红点 bool `alias:"红点"`
	// @alias 上架时间
	S上架时间 int `alias:"上架时间"`
	// @alias 下架时间
	X下架时间 int `alias:"下架时间"`
	// @alias 开始时间
	K开始时间 int `alias:"开始时间"`
	// @alias 结束时间
	J结束时间 int `alias:"结束时间"`
}

type S统计数据 struct {
	// @alias 配置
	P配置 string `alias:"配置"`
	// 标识->得分
	// @alias 得分
	D得分 map[string]float64 `alias:"得分"`
	// 重置会更新版本号+1
	// @alias 版本
	B版本 int `alias:"版本"`
}

type S任务数据 struct {
	// @alias 标识
	B标识 string `alias:"标识"`
	// 用于连续任务集，只需要记录当前任务的任务数据
	// @alias 当前任务
	D当前任务 string `alias:"当前任务"`
	// @alias 任务状态
	R任务状态 busenum.R任务状态 `alias:"任务状态"`
	// @alias 任务结果
	R任务结果 busenum.R任务结果 `alias:"任务结果"`
	// @alias 领取状态
	L领取状态 busenum.J角色领取状态 `alias:"领取状态"`
	// @alias 开始时间
	K开始时间 int `alias:"开始时间"`
	// @alias 完成次数
	W完成次数 string `alias:"完成次数"`
	// 重置会更新版本号+1
	// @alias 版本
	B版本 int `alias:"版本"`
}

type S挂机数据 struct {
	// 在线离线会导致使用启动时间计算时长不准确，因此增加时间累计方式
	// 如果玩家重新登录，不领取离线奖励就强制退出游戏，会导致离线时间重置，导致离线奖励就是，因此增加“离线时间累计”
	// @alias 累计时长
	L累计时长 int `alias:"累计时长"`
	// @alias 启动时间
	Q启动时间 int `alias:"启动时间"`
	// @alias 奖励等级
	J奖励等级 int `alias:"奖励等级"`
}

type S活动数据 struct {
	// 功能编号
	// @alias 功能
	G功能 string `alias:"功能"`
}
